package com.it.mapper;


import com.it.pojo.User;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;
import java.util.Map;

public interface UserMapper {
    // ---------------------------------------- XML  ----------------------------------------

    /**
     * 查询全部：无参查询
     *
     * @return
     */
    public List<User> findAll();


    /**
     * 根据id查询
     *
     * @param id
     * @return
     */
    public User findById(Integer id);

    /**
     * 按实体类进行新增
     *
     * @param user
     * @return
     */
    int addByUser(User user);

    /**
     * 传入多个参数、通过使用 @Param("参数名") 注解
     *
     * @param phone
     * @param email
     * @param id
     * @return
     */
    int updateByOdd(
            @Param("phone") String phone,
            @Param("email") String email,
            @Param("id") Integer id);


    /**
     * 新增：传入一个Map集合
     *
     * @param map
     * @return
     */
    int updateByMap(@Param("map") Map map);

    // ---------------------------------------- 注解  ----------------------------------------

    /**
     * 按年龄区间查询
     *
     * @param age1
     * @param age2
     * @return
     */
    @Select("select * from sm_db.tb_user where age >= #{age1} && age <= #{age2}")
    public List<User> findByAges(@Param("age1") Integer age1, @Param("age2") Integer age2);

    /**
     * 按性别查询
     * @param gender
     * @return
     */
    @Select("select * from sm_db.tb_user where gender=#{gender}")
    public List<User> findByGenders(@Param("gender") Integer gender);
}
